package de.revdev.streckenliste.managedbeans;

import de.revdev.streckenliste.beans.PersDaten;
import de.revdev.streckenliste.entities.Benutzer;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
import org.primefaces.event.TabChangeEvent;

/**
 *
 * @author Nina
 */
@Named(value = "persDatenBean")
@SessionScoped
public class PersDatenBean implements Serializable {

    @Inject
    private PersDaten persD;
    private Benutzer benutzer;
    private Integer persTabActiveIndex;

    /**
     * Creates a new instance of PersDatenBean
     */
    public PersDatenBean() {
    }

    public Benutzer getBenutzer() {
        if (benutzer == null) {
            FacesContext faCon = FacesContext.getCurrentInstance();
            HttpServletRequest request = (HttpServletRequest) faCon.getExternalContext().getRequest();
            benutzer = persD.benutzerVonMail(request.getRemoteUser());
        }
        return benutzer;
    }

    public void setBenutzer(Benutzer benutzer) {
        this.benutzer = benutzer;
    }

    public String speichern() {
        persD.aendereBenutzer(benutzer);
        return "/faces/user/persdaten.xhtml?faces-redirect=true";
    }

    public void speichernPersIndex() {

        persTabActiveIndex = 0;
        speichern();
    }

    public Integer getPersTabActiveIndex() {
        return persTabActiveIndex;
    }

    public void setPersTabActiveIndex(Integer persTabActiveIndex) {
        this.persTabActiveIndex = persTabActiveIndex;
    }

    public void onTabChange(TabChangeEvent event) {

        if ("tabView:uebersicht".equals(event.getTab().getClientId())) {
            persTabActiveIndex = 0;
        }
        if ("tabView:bearbeiten".equals(event.getTab().getClientId())) {
            persTabActiveIndex = 1;
        }

        if ("tabView:passwort".equals(event.getTab().getClientId())) {
            persTabActiveIndex = 2;
        }
    }

    @PostConstruct
    public void init() {
        persTabActiveIndex = 0;
    }
}
